package vista.objetos;

import vista.ventanas.VentanaAtributo;
import logica.Atributo;
import logica.AtributoDerivado;
import logica.ConstantesTipo;
import logica.SinNombreException;

public class FabricaAtributoGraficableCopia implements FabricaAtributoGraficable{

	@Override
	public AtributoGraficable crearAtributoGraficable(VentanaAtributo ventana) throws SinNombreException 
	{
		return new AtributoGraficableCopia(this.crearAtributo(ventana));
	}

	@Override
	public Atributo crearAtributo(VentanaAtributo ventana) throws SinNombreException
	{
		FabricaAtributoDerivado fabrica = new FabricaAtributoDerivado();
		AtributoDerivado atributo = (AtributoDerivado) fabrica.crearAtributo(ventana);
		
		atributo.setTipo(this.toString());
		
		return atributo;
	}
	
	public String toString() 
	{
		return ConstantesTipo.ATRIBUTO_TIPO_COPIA;
	}

	@Override
	public boolean necesitaExpresion() 
	{
		return true;
	}

	@Override
	public AtributoGraficable crearAtributoGraficable(Atributo atributo) {
		return new AtributoGraficableCopia(atributo);
	}
}
